import { constantRoutes } from '@/router/index'

// 存储数据的
const state = {
  // 路由表, 标记当前用户所拥有的所有路由
  routes: constantRoutes // 默认静态路由表
}
// getters 相当于Vuex中计算属性computed
// 为了方便找到state数据,每个getter方法的第一个参数,固定是state
const getters = {}
// 放同步方法,方法用于更新state数据.而且,只能通过这里的方法来更新state数据
// 为了方便更新state数据,每个mutation方法的第一个参数,固定是state
const mutations = {
  // newRoutes登录成功后, 需要添加的新路由
  setRoutes(state, newRoutes) {
    // 静态路由基础上, 累加其他权限路由
    state.routes = [...constantRoutes, ...newRoutes]
  }
}
// 放异步方法,比如1秒后,更新count的值,比如ajax请求之后,更新list数据
// 由于不能通过action方法修改state,所以每个action方法的第一个参数,不是state
// 每个action方法的第一个参数是store,这样设计,是为了store.commit('方法名)来调用mutation方法
const actions = {}
export default {
  namespaced: true,
  state,
  getters,
  mutations,
  actions
}
